0 REM C-64 HI-RES GRAPH DEMO, DAVID WILLIAMS,1982 5 GOTO500 10 Y=SQR(25-X*X) 11 RETURN 100 C%=PC:R%=PR 103 SYSXX 104 RETURN 500 IFPEEK(51712)<>162THENLOAD"64 H-R PLOT M/L",8,1 510 DIMA(3000):CLR 1000 PRINT"[147]DO YOU WANT INSTRUCTIONS? (Y OR N)" 1010 GETS1$:IFS1$<>"Y"ANDS1$<>"N"THEN1010 1020 IFS1$="Y"THEN1500 1030 PRINT"[147]PLEASE COMPLETE EQUATION OF FUNCTION" 1040 INPUT"Y=";Z$ 1050 IFLEFT$(Z$,3)="Y=?"THENZ$=RIGHT$(Z$,LEN(Z$)-3) 1060 FORA1=1TO2:POKE630+A1,13:NEXT:POKE198,2 1070 PRINT"10Y=";Z$ 1090 PRINT"RUN1100[145][145][145]";:END 1100 C%=0:R%=0:XX=51712 1101 INPUT"[147]WHAT IS THE GREATEST VALUE OF X";XB 1110 INPUT"WHAT IS THE LEAST VALUE OF X";XA 1120 INPUT"WHAT IS THE GREATEST VALUE OF Y";YB 1130 INPUT"WHAT IS THE LEAST VALUE OF Y";YA 1140 PRINT"DO YOU WANT AXES DRAWN? (Y OR N)" 1180 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1180 1200 PRINT"[147]"; 1202 PRINT"COLOUR NUMBERS (0-15)" 1204 INPUT "GRAPH";CO:CO=15ANDCO 1206 INPUT"BACKGROUND";CZ:CZ=15ANDCZ 1207 POKE52748,16*CO+CZ:POKE52749,1:REM COLOUR BYTE AND PLOT/UNPLOT FLAG 1208 PRINT"[147]";:POKE53265,PEEK(53265)OR32:POKE53272,PEEK(53272)AND240OR8 1210 J=17*CZ:FORI=1024TO2023:POKEI,J:NEXT 1215 HS=8192:CS=1024 1219 SX=(XB-XA)/319:SY=(YB-YA)/199 1220 IFA$="N"THEN1270 1230 PC=INT(.5-XA/SX) 1240 IFPC>=0ANDPC<=319THENFORPR=0TO199:GOSUB100:NEXT 1250 PR=INT(.5+YB/SY) 1260 IFPR>=0ANDPR<=199THENFORPC=0TO319:GOSUB100:NEXT 1270 X=XA:GOSUB10:Y1=Y:R1=INT((YB-Y1)/SY+.5) 1280 FORB1=0TO318 1290 X=XA+SX*(B1+1):GOSUB10:Y2=Y 1300 R2=INT((YB-Y2)/SY+.5) 1310 IFABS(R2-R1)>199THEN1380 1320 SR=SGN(R2-R1) 1330 R3=INT((YB-(Y1+Y2)/2)/SY-SR/2+.5) 1340 SS=SR:IFSS=0THENSS=1 1350 PC=B1:FORPR=R1TOR3STEPSS:GOSUB100:NEXT 1360 IFSR=0THEN1380 1370 PC=B1+1:FORPR=R3+SRTOR2STEPSS:GOSUB100:NEXT 1380 Y1=Y2:R1=R2 1390 NEXT 1400 GOTO1400 1500 PRINT"TOO BAD, I HAVEN'T WRITTEN DETAILED" 1510 PRINT"INSTRUCTIONS YET! JUST TYPE IN ANY" 1520 PRINT"FUNCTION EQUATION IN X AND Y, AND" 1530 PRINT"IT SHOULD WORK. IF YOU" 1540 PRINT"USE TRIG RATIOS, ENTER THE ARGUMENTS" 1550 PRINT"IN BRACKETS, E.G. 'SIN(X)'. THE [211]AME" 1560 PRINT"APPLIES TO LOGS, ETC." 1570 PRINT"BE CAREFUL[146] TO AVOID UNDEFINED" 1580 PRINT"EXPRESSIONS WITHIN YOUR RANGES OF" 1590 PRINT"X AND Y." 1600 PRINT"PRESS SPACE BAR TO START" 1610 GETS1$:IFS1$<>" "THEN1610 1620 GOTO1030 0